package com.kantboot.file.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.kantboot.file.config.KantbootFileSettingConfig;
import com.kantboot.file.entity.CesKantbootFile;
import com.kantboot.file.exption.NotFileException;
import com.kantboot.file.mapper.CesKantbootFileMapper;
import com.kantboot.file.service.CesKantbootFileService;
import com.kantboot.util.common.FileIoUtil;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;

@Service
public class CesKantbootFileServiceImpl implements CesKantbootFileService {

    @Resource
    CesKantbootFileMapper cesKantbootFileMapper;

    @Override
    public void showFileById(Integer id,String typeStr, HttpServletResponse response) {
        CesKantbootFile cesKantbootFile;
        try{
            cesKantbootFile
                    =cesKantbootFileMapper
                    .selectOne(new QueryWrapper<CesKantbootFile>()
                            .eq("type_str",typeStr)
                            .eq("id", id)
                    );
            FileIoUtil.showVideoByPath(cesKantbootFile.getPath(),response);
        }catch (NullPointerException e){
            throw new NotFileException();
        }
    }

    @Override
    public CesKantbootFile upload(MultipartFile file,String typeStr) {
        String path = FileIoUtil.transferTo(file, KantbootFileSettingConfig.newInstance().getUploadPath());
        CesKantbootFile cesKantbootFile = new CesKantbootFile()
                .setPath(path)
                .setTypeStr(typeStr);
        cesKantbootFileMapper.insert(cesKantbootFile);
        return cesKantbootFile;
    }

}
